package com.chenyue.cm.live.service;

import com.chenyue.cm.base.bean.Pageable;
import com.chenyue.cm.base.service.BaseServiceIface;
import com.chenyue.cm.bean.Success;
import com.chenyue.cm.common.vo.Page;
import com.chenyue.cm.live.domain.JdLive;
import com.chenyue.cm.live.vo.LiveUser;
import com.chenyue.cm.live.vo.MixStreamParam;
import com.chenyue.cm.live.vo.SetLiveUser;
import com.chenyue.cm.user.domain.JdAppUser;

import java.util.List;

/**
 * @author chenyue-cm
 */
public interface JdLiveService extends BaseServiceIface<JdLive> {

    /**
     * 获取三方机构下主播列表
     *
     * @param userId 三方机构id
     *               //     * @param type   1表示是appUser 2表示是sysUser
     * @return 机构下主播列表
     */
    Page<List<LiveUser>> getLiveUserList(String userId, Integer page, Integer rows, Pageable pageInfo);

    /**
     * 查询赛事主播
     * @param userId
     * @return
     */
    List<LiveUser> getJdLiveUserList(String userId);

    /**
     * 三方机构添加主播
     *
     * @param liveUserList 主播列表
     * @param userId       三方机构id
     * @return Success
     */
    Success<String> setLiveUser(List<SetLiveUser> liveUserList, Integer userId);

    /**
     * 根据号码 获取用户
     *
     * @param num id/手机号
     * @return user
     */
    JdAppUser getUserByIdOrPhone(String num);

    /**
     * 是否主播
     *
     * @param userId 用户id
     * @return 0待审核 1是 2不是
     */
    Integer isAnchor(Integer userId);

    /**
     * 创建通用混流
     *
     * @param mixStreamParam 混流参数
     * @return RequestId     唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
     */
    String createCommonMixStream(MixStreamParam mixStreamParam);

    /**
     * 删除主播角色
     *
     * @param liveId 主播id
     */
    void deleteLive(Integer liveId);
}